package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.CheckGroup;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

@Mapper
public interface CheckGroupDao {
    /**
     * 分页查询
     * @param queryString
     * @return
     */
    Page<CheckGroup> selectByConditon(@Param("queryString")String queryString);

    /**
     * 新增数据
     * @param checkGroup
     */
    void insert(CheckGroup checkGroup);

    /**
     * 插入多条数据
     * @param map
     */
    void insertCheckGroupAndCheckItem(Map<String, Integer> map);

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    @Select("select * from t_checkgroup where id =#{id}")
    CheckGroup getById(Integer id);

    /**
     *  回显当前检查组包含的检查项
     * @param id
     * @return
     */
    @Select("select checkitem_id from t_checkgroup_checkitem where  checkgroup_id =#{id}")
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);

    /**
     * 更新检查组
     * @param checkGroup
     * @return
     */
    @Update(" update t_checkgroup set code=#{code},name=#{name},helpCode=#{helpCode},sex=#{sex},remark=#{remark},attention=#{attention}   where id=#{id}")
    void updateCheckGroup(CheckGroup checkGroup);

    /**
     * 删除关联表中的数据
     * @param id
     */
    @Delete("delete from t_checkgroup_checkitem where  checkgroup_id=#{id}")
    void deleteCheckGroupAndCheckItemByCheckGroupId(Integer id);

    /**
     * 根据检查组的id查询套餐表的关系
     * @param id
     * @return
     */
    @Select("select count(setmeal_id) from t_setmeal_checkgroup where checkgroup_id = #{id}")
    Integer getCheckGroupInSetmealById(Integer id);

    /**
     * 删除检查组的信息
     * @param id
     */
    @Delete("delete from  t_checkgroup where id =#{id}")
    void deleteById(Integer id);

    /**
     * 检查组列表数据查询
     * @return
     */
    @Select("select * from t_checkgroup")
    List<CheckGroup> findAll();
}
